package com.arpa.oms.domain.dto;

import com.arpa.wms.domain.entity.BasicEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * OMS销售退货单DTO
 * </p>
 *
 * @author LEO
 * @since 2020-11-17
 */
@Data
@ApiModel(value="OmsSaleReturnDTO对象", description="OMS销售退货单")
public class OmsSaleReturnDTO extends BasicEntity {


    @ApiModelProperty(value = "采购退货单号")
    private String code;

    @ApiModelProperty(value = "仓库code")
    private String warehouseCode;

    @ApiModelProperty(value = "仓库标识集合")
    private List<String> warehouseCodes;

    @ApiModelProperty(value = "货主code")
    private String shipmentCode;

    @ApiModelProperty(value = "货主名称")
    private String shipmentName;

    @ApiModelProperty(value = "所属机构标识")
    private String groupCode;

    @ApiModelProperty(value = "客户标识")
    private String customerCode;

    @ApiModelProperty(value = "客户名称")
    private String customerName;

    @ApiModelProperty(value = "销售单号")
    private String sourceCode;

    @ApiModelProperty(value = "单据类型")
    private String type;

    @ApiModelProperty(value = "计划退货数量（退货单位）")
    private BigDecimal planQuantity;

    @ApiModelProperty(value = "实退货购数量（退货单位）")
    private BigDecimal actualQuantity;

    @ApiModelProperty(value = "计划退货数量（退货单位）  上限")
    private BigDecimal planQuantityStart;

    @ApiModelProperty(value = "计划退货数量（退货单位）  下限")
    private BigDecimal planQuantityEnd;

    @ApiModelProperty(value = "实退货购数量（退货单位）  上限")
    private BigDecimal actualQuantityStart;

    @ApiModelProperty(value = "实退货购数量（退货单位）  下限")
    private BigDecimal actualQuantityEnd;

    @ApiModelProperty(value = "状态：NEWS:新增、ANNUL:作废、PENDING: 待审核、PASS: 审核通过、NO_PASS：审核不通过")
    private String status;

    @ApiModelProperty(value = "审核列表查询时参数，审核状态：PENDING: 待审核、PASS: 审核通过、NO_PASS：审核不通过")
    private String auditStatus;

    @ApiModelProperty(value = "审核意见")
    private String verifyOpinion;

    @ApiModelProperty(value = "审核时间")
    private LocalDateTime gmtVerify;

    @ApiModelProperty(value = "审核人")
    private String verifyBy;

    @ApiModelProperty(value = "审核人姓名")
    private String verifyName;

    @ApiModelProperty(value = "审核时间Start")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtVerifyStart;

    @ApiModelProperty(value = "审核时间End")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtVerifyEnd;

    @ApiModelProperty(value = "备注")
    private String remarks;


    @ApiModelProperty(value = "第几页")
    private Integer pageNum=1;

    @ApiModelProperty(value = "每页条数")
    private Integer pageSize=10;

    @ApiModelProperty(value = "排序字段")
    private String sortField;

    @ApiModelProperty(value = "排序方式")
    private String sortType;

}
